package com.enba.boot.web.utils;

import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;

public class HeaderUtils {

  /**
   * 从HttpServletRequest中获取所有的请求头，并将其转换为Map
   *
   * @param request HttpServletRequest对象，包含客户端请求的数据。
   * @return 包含所有请求头名称和值的Map。
   */
  public static Map<String, String> getHeaders(HttpServletRequest request) {
    Map<String, String> headerMap = new HashMap<>();
    Enumeration<String> headerNames = request.getHeaderNames();
    while (headerNames.hasMoreElements()) {
      String headerName = headerNames.nextElement();
      String headerValue = request.getHeader(headerName);
      headerMap.put(headerName, headerValue);
    }
    return headerMap;
  }

  /**
   * 获取指定名称的请求头的值。
   *
   * @param request HttpServletRequest对象，包含客户端请求的数据。
   * @param headerName 请求头的名称。
   * @return 指定名称的请求头的值；如果不存在，则返回null。
   */
  public static String getHeader(HttpServletRequest request, String headerName) {
    return request.getHeader(headerName);
  }
}
